package anr.desu.pmo.common.service;

import javax.persistence.EntityManager;

import anr.desu.pmo.common.util.Utilitario;
import anr.desu.pmo.proyecto.model.Empleado;
import anr.desu.pmo.proyecto.model.Usuario;
import anr.desu.pmo.proyecto.model.dao.EmpleadoDAO;
import anr.desu.pmo.proyecto.model.dao.UsuarioDAO;
import anr.desu.pmo.proyecto.model.dao.jpa.JPAEmpleadoDAO;
import anr.desu.pmo.proyecto.model.dao.jpa.JPAUsuarioDAO;

public class SeguridadService {

	private EntityManager em;
	private UsuarioDAO usuarioDAO;
	private EmpleadoDAO empleadoDAO;
	
	public SeguridadService(){
		em=Utilitario.getInstance().getEntityManager();
		usuarioDAO = new JPAUsuarioDAO(em);
		empleadoDAO = new JPAEmpleadoDAO(em);
	}
	
	public Usuario validarUsuario(String cuenta, String clave){
		Usuario usuario=usuarioDAO.find(cuenta);
		if(usuario==null){
			throw new RuntimeException("Usuario no existe.");
		}else{
			if(!usuario.getClave().equals(clave)){
				throw new RuntimeException ("Clave incorrecta.");
			}
		}
		return usuario;
	}
	
	public Usuario consultarDetUsuario(String cuenta){
		Usuario usuario=usuarioDAO.find(cuenta);
		if(usuario==null){
			throw new RuntimeException("Usuario no existe.");
		}
		return usuario;
		
	}
	public Empleado consultarDetUsuarioEmpleado(Integer id){
		Empleado empleado=empleadoDAO.findByIdUsuario(id);
		if(empleado==null){
			throw new RuntimeException("Empleado no existe.");
		}
		return empleado;
		
	}

}
